package com.token.sysflow.impl;

import com.alibaba.fastjson.JSONObject;
import com.token.sql.IntegrateSql;
import com.token.sysflow.enumerate.ActionTypeEnum;

/**
 * @author chenjianxiong 2020/4/13
 */
public interface FlowHandler {

    /**
     * 初始化参数
     *
     * @param iSql 类型
     * @throws Exception 抛出错误
     */
    void initParameter(IntegrateSql iSql) throws Exception;

    /**
     * 提交处理
     *
     * @return true 处理成功
     * @throws Exception 抛出错误
     */
    boolean submitHandler() throws Exception;


    /**
     * 返回处理结果
     *
     * @return JSON
     */
    JSONObject getResult();


    /**
     * 获取操作类型
     *
     * @return 操作ID
     */
    ActionTypeEnum getActionType();


    void close();
}
